文章目標:示範如何設定 GCP 服務帳號,以便在 Terraform 中進行身份驗證。
登入GCP控制台(https://console.cloud.google.com)。
選擇您要創建服務帳號的GCP專案。
在左側導航欄中,選擇IAM與管理
,然後選擇服務帳號
。
在服務帳號頁面上,點擊創建服務帳號
。
在新服務帳號
對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊創建
。
在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
點擊完成
即可創建服務帳號。
接下來,您需要下載服務帳號的私鑰檔案。點擊新建的服務帳號,然後點擊加密金鑰
選項卡。在該頁面上,您可以選擇下載私鑰檔案,並保存到您的本地電腦。
將私鑰檔案與您的應用程序一起使用,以便驗證該應用程序對GCP資源的訪問權限。
使用GCP的Cloud Console
創建服務帳號 Service Account, SA
下載對應的金鑰 key (json)
查看金鑰 key裡面的內容
登入GCP控制台(https://console.cloud.google.com)後,在左側導航欄中,選擇IAM與管理
與身份與存取權管理,然後選擇服務帳號
。
在服務帳號頁面上,點擊創建服務帳號
。
在新服務帳號
對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊創建
。
在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
點擊完成
即可創建服務帳號。
確認服務帳號詳細資料無誤。
服務帳號電子郵件,是gcp用來管理對應服務帳號擁有權限的資料。
點選上方的金鑰
建立新的金鑰,並選擇JSON的類型來產生
產生後會自動下載
打開Google Cloud Platform (GCP) 服務帳戶金鑰 json 檔案的內容,並確認相關資訊。這個金鑰可用於身份驗證和授權以訪問 GCP 資源,記得也需要非常謹慎地保護和管理。:
type
:這是金鑰的類型,指明這是一個服務帳戶金鑰。
project_id
:這是與這個金鑰相關聯的 GCP 項目的項目 ID,即 terraform101–384507
。
private_key_id
:這是金鑰的私有金鑰 ID,用於識別這個特定金鑰。
private_key
:這是實際的私有金鑰,是一個長字符串,通常以 — — -BEGIN PRIVATE KEY — — -
和 — — -END PRIVATE KEY — — -
包圍。這個金鑰用於對 GCP 資源進行驗證和授權,所以非常敏感,需要妥善保護。
client_email
:這是服務帳戶的客戶電子郵件地址,通常以 [tf101–776@terraform101–384507.iam.gserviceaccount.com](mailto:tf101-776@terraform101-384507.iam.gserviceaccount.com)
的形式存在。
client_id
:這是服務帳戶的客戶 ID,用於識別服務帳戶。
auth_uri
:這是用於進行身份驗證的 URI,通常用於 OAuth2 驗證流程,位於 `https://accounts.google.com/o/oauth2/auth。
token_uri
:這是用於獲取訪問令牌的 URI,位於 `https://oauth2.googleapis.com/token。
auth_provider_x509_cert_url
:這是身份驗證提供者的 X.509 證書的 URL,通常用於確保與身份驗證相關的安全性,位於 `https://www.googleapis.com/oauth2/v1/certs。
client_x509_cert_url
:這是服務帳戶的 X.509 證書的 URL,用於公開金鑰驗證,位於 `https://www.googleapis.com/robot/v1/metadata/x509/tf101-776%40terraform101-384507.iam.gserviceaccount.com。
設定服務帳號: 這部分詳細說明了如何在Google Cloud Platform (GCP)上建立服務帳號,以及如何管理相關的權限。同時,我們也了解到如何生成專屬於服務帳號的金鑰,這個金鑰將被用於後續的身份驗證。
服務帳號金鑰內容: 我們深入瞭解了服務帳號金鑰的內容。其中包括了金鑰的類型、關聯的GCP專案ID、私有金鑰ID等重要參數。此外,我們也注意到金鑰內容中的敏感信息,特別是私有金鑰,這是用於確保訪問GCP資源的關鍵。
Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code — https://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code
Terraform-project-best-practice — https://github.com/qwedsazxc78/terraform-project-best-practice
歡迎訂閱我的udemy課程:Terraform 從零開始 - 10+實戰Lab打造GCP雲端自動化架構課程 - https://devops-with-alex.com/go/terraform